16eba3f9f7c8c198561eb582321c2a372b00ad61,subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ResolveIvyFactory.java,ResolveIvyFactory,create,#ConfigurationInternal#,66
Before Change
Ivy ivy = ivyFactory.createIvy(ivySettings);
ResolveData resolveData = createResolveData(ivy, configuration.getName());
RefreshWhenMissingInAllRepositoriesCachePolicy repositoryAwareCachePolicy = new RefreshWhenMissingInAllRepositoriesCachePolicy(configuration.getResolutionStrategy().getCachePolicy(), moduleResolutionCache, moduleDescriptorCache);
IvyContextualiser contextualiser = new IvyContextualiser(ivy, resolveData);
for (DependencyResolver rawResolver : rawResolvers) {
// TODO:DAZ This could be lazily provided via the ivy context. Then we can change resolverProvider.getResolvers() -> getRepositories().
rawResolver.setSettings(ivySettings);
ModuleVersionRepository moduleVersionRepository = new DependencyResolverAdapter(rawResolver);
repositoryAwareCachePolicy.registerRepository(moduleVersionRepository);
moduleVersionRepository = new CacheLockingModuleVersionRepository(moduleVersionRepository, cacheLockingManager);
moduleVersionRepository = startParameterResolutionOverride.overrideModuleVersionRepository(moduleVersionRepository);
ModuleVersionRepository cachingRepository = new CachingModuleVersionRepository(moduleVersionRepository, moduleResolutionCache, moduleDescriptorCache, artifactAtRepositoryCachedResolutionIndex,
repositoryAwareCachePolicy, timeProvider);
// Need to contextualise outside of caching, since parsing of module descriptors in the cache requires ivy settings, which is provided via the context atm
ModuleVersionRepository ivyContextualisedRepository = contextualiser.contextualise(ModuleVersionRepository.class, cachingRepository);
userResolverChain.add(ivyContextualisedRepository);
After Change
refreshWhenMissingInAllRepositoriesCachePolicy.registerRepository(moduleVersionRepository);
moduleVersionRepository = new CacheLockingModuleVersionRepository(moduleVersionRepository, cacheLockingManager);
moduleVersionRepository = startParameterResolutionOverride.overrideModuleVersionRepository(moduleVersionRepository);
ModuleVersionRepository cachingRepository = new CachingModuleVersionRepository(moduleVersionRepository, moduleResolutionCache, moduleDescriptorCache, artifactAtRepositoryCachedResolutionIndex,
new ChainedCachePolicy(configuration.getResolutionStrategy().getCachePolicy(),
new OnlyOncePerRepositoryRefreshModuleCachePolicy(moduleVersionRepository, repositoryLookUpRegistry, refreshWhenMissingInAllRepositoriesCachePolicy)), timeProvider);
ModuleVersionRepository ivyContextualisedRepository = contextualiser.contextualise(ModuleVersionRepository.class, cachingRepository);
userResolverChain.add(ivyContextualisedRepository);
}